cmake_minimum_required(VERSION 3.14)

project(AbstractFactory LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

#find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)
#find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core)

add_executable(AbstractFactory
        main.cpp
        AbstractFactory.cpp
        AbstractProduct.cpp
        ConcreteFactoryA.cpp
        ConcreteFactoryB.cpp
        ProductA.cpp
        ProductB.cpp
)
#target_link_libraries(ObserverPattern Qt${QT_VERSION_MAJOR}::Core)

include(GNUInstallDirs)
install(TARGETS AbstractFactory
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
